package com.syq.entity;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class VipCoursePlanRecordExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    private Integer limit;

    private Integer offset;

    public VipCoursePlanRecordExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    public void setLimit(Integer limit) {
        this.limit = limit;
    }

    public Integer getLimit() {
        return limit;
    }

    public void setOffset(Integer offset) {
        this.offset = offset;
    }

    public Integer getOffset() {
        return offset;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andUcRnoIsNull() {
            addCriterion("uc_rno is null");
            return (Criteria) this;
        }

        public Criteria andUcRnoIsNotNull() {
            addCriterion("uc_rno is not null");
            return (Criteria) this;
        }

        public Criteria andUcRnoEqualTo(String value) {
            addCriterion("uc_rno =", value, "ucRno");
            return (Criteria) this;
        }

        public Criteria andUcRnoNotEqualTo(String value) {
            addCriterion("uc_rno <>", value, "ucRno");
            return (Criteria) this;
        }

        public Criteria andUcRnoGreaterThan(String value) {
            addCriterion("uc_rno >", value, "ucRno");
            return (Criteria) this;
        }

        public Criteria andUcRnoGreaterThanOrEqualTo(String value) {
            addCriterion("uc_rno >=", value, "ucRno");
            return (Criteria) this;
        }

        public Criteria andUcRnoLessThan(String value) {
            addCriterion("uc_rno <", value, "ucRno");
            return (Criteria) this;
        }

        public Criteria andUcRnoLessThanOrEqualTo(String value) {
            addCriterion("uc_rno <=", value, "ucRno");
            return (Criteria) this;
        }

        public Criteria andUcRnoLike(String value) {
            addCriterion("uc_rno like", value, "ucRno");
            return (Criteria) this;
        }

        public Criteria andUcRnoNotLike(String value) {
            addCriterion("uc_rno not like", value, "ucRno");
            return (Criteria) this;
        }

        public Criteria andUcRnoIn(List<String> values) {
            addCriterion("uc_rno in", values, "ucRno");
            return (Criteria) this;
        }

        public Criteria andUcRnoNotIn(List<String> values) {
            addCriterion("uc_rno not in", values, "ucRno");
            return (Criteria) this;
        }

        public Criteria andUcRnoBetween(String value1, String value2) {
            addCriterion("uc_rno between", value1, value2, "ucRno");
            return (Criteria) this;
        }

        public Criteria andUcRnoNotBetween(String value1, String value2) {
            addCriterion("uc_rno not between", value1, value2, "ucRno");
            return (Criteria) this;
        }

        public Criteria andCnoIsNull() {
            addCriterion("cno is null");
            return (Criteria) this;
        }

        public Criteria andCnoIsNotNull() {
            addCriterion("cno is not null");
            return (Criteria) this;
        }

        public Criteria andCnoEqualTo(String value) {
            addCriterion("cno =", value, "cno");
            return (Criteria) this;
        }

        public Criteria andCnoNotEqualTo(String value) {
            addCriterion("cno <>", value, "cno");
            return (Criteria) this;
        }

        public Criteria andCnoGreaterThan(String value) {
            addCriterion("cno >", value, "cno");
            return (Criteria) this;
        }

        public Criteria andCnoGreaterThanOrEqualTo(String value) {
            addCriterion("cno >=", value, "cno");
            return (Criteria) this;
        }

        public Criteria andCnoLessThan(String value) {
            addCriterion("cno <", value, "cno");
            return (Criteria) this;
        }

        public Criteria andCnoLessThanOrEqualTo(String value) {
            addCriterion("cno <=", value, "cno");
            return (Criteria) this;
        }

        public Criteria andCnoLike(String value) {
            addCriterion("cno like", value, "cno");
            return (Criteria) this;
        }

        public Criteria andCnoNotLike(String value) {
            addCriterion("cno not like", value, "cno");
            return (Criteria) this;
        }

        public Criteria andCnoIn(List<String> values) {
            addCriterion("cno in", values, "cno");
            return (Criteria) this;
        }

        public Criteria andCnoNotIn(List<String> values) {
            addCriterion("cno not in", values, "cno");
            return (Criteria) this;
        }

        public Criteria andCnoBetween(String value1, String value2) {
            addCriterion("cno between", value1, value2, "cno");
            return (Criteria) this;
        }

        public Criteria andCnoNotBetween(String value1, String value2) {
            addCriterion("cno not between", value1, value2, "cno");
            return (Criteria) this;
        }

        public Criteria andUnoIsNull() {
            addCriterion("uno is null");
            return (Criteria) this;
        }

        public Criteria andUnoIsNotNull() {
            addCriterion("uno is not null");
            return (Criteria) this;
        }

        public Criteria andUnoEqualTo(String value) {
            addCriterion("uno =", value, "uno");
            return (Criteria) this;
        }

        public Criteria andUnoNotEqualTo(String value) {
            addCriterion("uno <>", value, "uno");
            return (Criteria) this;
        }

        public Criteria andUnoGreaterThan(String value) {
            addCriterion("uno >", value, "uno");
            return (Criteria) this;
        }

        public Criteria andUnoGreaterThanOrEqualTo(String value) {
            addCriterion("uno >=", value, "uno");
            return (Criteria) this;
        }

        public Criteria andUnoLessThan(String value) {
            addCriterion("uno <", value, "uno");
            return (Criteria) this;
        }

        public Criteria andUnoLessThanOrEqualTo(String value) {
            addCriterion("uno <=", value, "uno");
            return (Criteria) this;
        }

        public Criteria andUnoLike(String value) {
            addCriterion("uno like", value, "uno");
            return (Criteria) this;
        }

        public Criteria andUnoNotLike(String value) {
            addCriterion("uno not like", value, "uno");
            return (Criteria) this;
        }

        public Criteria andUnoIn(List<String> values) {
            addCriterion("uno in", values, "uno");
            return (Criteria) this;
        }

        public Criteria andUnoNotIn(List<String> values) {
            addCriterion("uno not in", values, "uno");
            return (Criteria) this;
        }

        public Criteria andUnoBetween(String value1, String value2) {
            addCriterion("uno between", value1, value2, "uno");
            return (Criteria) this;
        }

        public Criteria andUnoNotBetween(String value1, String value2) {
            addCriterion("uno not between", value1, value2, "uno");
            return (Criteria) this;
        }

        public Criteria andUshOrnoIsNull() {
            addCriterion("ush_orno is null");
            return (Criteria) this;
        }

        public Criteria andUshOrnoIsNotNull() {
            addCriterion("ush_orno is not null");
            return (Criteria) this;
        }

        public Criteria andUshOrnoEqualTo(String value) {
            addCriterion("ush_orno =", value, "ushOrno");
            return (Criteria) this;
        }

        public Criteria andUshOrnoNotEqualTo(String value) {
            addCriterion("ush_orno <>", value, "ushOrno");
            return (Criteria) this;
        }

        public Criteria andUshOrnoGreaterThan(String value) {
            addCriterion("ush_orno >", value, "ushOrno");
            return (Criteria) this;
        }

        public Criteria andUshOrnoGreaterThanOrEqualTo(String value) {
            addCriterion("ush_orno >=", value, "ushOrno");
            return (Criteria) this;
        }

        public Criteria andUshOrnoLessThan(String value) {
            addCriterion("ush_orno <", value, "ushOrno");
            return (Criteria) this;
        }

        public Criteria andUshOrnoLessThanOrEqualTo(String value) {
            addCriterion("ush_orno <=", value, "ushOrno");
            return (Criteria) this;
        }

        public Criteria andUshOrnoLike(String value) {
            addCriterion("ush_orno like", value, "ushOrno");
            return (Criteria) this;
        }

        public Criteria andUshOrnoNotLike(String value) {
            addCriterion("ush_orno not like", value, "ushOrno");
            return (Criteria) this;
        }

        public Criteria andUshOrnoIn(List<String> values) {
            addCriterion("ush_orno in", values, "ushOrno");
            return (Criteria) this;
        }

        public Criteria andUshOrnoNotIn(List<String> values) {
            addCriterion("ush_orno not in", values, "ushOrno");
            return (Criteria) this;
        }

        public Criteria andUshOrnoBetween(String value1, String value2) {
            addCriterion("ush_orno between", value1, value2, "ushOrno");
            return (Criteria) this;
        }

        public Criteria andUshOrnoNotBetween(String value1, String value2) {
            addCriterion("ush_orno not between", value1, value2, "ushOrno");
            return (Criteria) this;
        }

        public Criteria andUcRnameIsNull() {
            addCriterion("uc_rName is null");
            return (Criteria) this;
        }

        public Criteria andUcRnameIsNotNull() {
            addCriterion("uc_rName is not null");
            return (Criteria) this;
        }

        public Criteria andUcRnameEqualTo(String value) {
            addCriterion("uc_rName =", value, "ucRname");
            return (Criteria) this;
        }

        public Criteria andUcRnameNotEqualTo(String value) {
            addCriterion("uc_rName <>", value, "ucRname");
            return (Criteria) this;
        }

        public Criteria andUcRnameGreaterThan(String value) {
            addCriterion("uc_rName >", value, "ucRname");
            return (Criteria) this;
        }

        public Criteria andUcRnameGreaterThanOrEqualTo(String value) {
            addCriterion("uc_rName >=", value, "ucRname");
            return (Criteria) this;
        }

        public Criteria andUcRnameLessThan(String value) {
            addCriterion("uc_rName <", value, "ucRname");
            return (Criteria) this;
        }

        public Criteria andUcRnameLessThanOrEqualTo(String value) {
            addCriterion("uc_rName <=", value, "ucRname");
            return (Criteria) this;
        }

        public Criteria andUcRnameLike(String value) {
            addCriterion("uc_rName like", value, "ucRname");
            return (Criteria) this;
        }

        public Criteria andUcRnameNotLike(String value) {
            addCriterion("uc_rName not like", value, "ucRname");
            return (Criteria) this;
        }

        public Criteria andUcRnameIn(List<String> values) {
            addCriterion("uc_rName in", values, "ucRname");
            return (Criteria) this;
        }

        public Criteria andUcRnameNotIn(List<String> values) {
            addCriterion("uc_rName not in", values, "ucRname");
            return (Criteria) this;
        }

        public Criteria andUcRnameBetween(String value1, String value2) {
            addCriterion("uc_rName between", value1, value2, "ucRname");
            return (Criteria) this;
        }

        public Criteria andUcRnameNotBetween(String value1, String value2) {
            addCriterion("uc_rName not between", value1, value2, "ucRname");
            return (Criteria) this;
        }

        public Criteria andUcRstarttimeIsNull() {
            addCriterion("uc_rStartTime is null");
            return (Criteria) this;
        }

        public Criteria andUcRstarttimeIsNotNull() {
            addCriterion("uc_rStartTime is not null");
            return (Criteria) this;
        }

        public Criteria andUcRstarttimeEqualTo(Date value) {
            addCriterion("uc_rStartTime =", value, "ucRstarttime");
            return (Criteria) this;
        }

        public Criteria andUcRstarttimeNotEqualTo(Date value) {
            addCriterion("uc_rStartTime <>", value, "ucRstarttime");
            return (Criteria) this;
        }

        public Criteria andUcRstarttimeGreaterThan(Date value) {
            addCriterion("uc_rStartTime >", value, "ucRstarttime");
            return (Criteria) this;
        }

        public Criteria andUcRstarttimeGreaterThanOrEqualTo(Date value) {
            addCriterion("uc_rStartTime >=", value, "ucRstarttime");
            return (Criteria) this;
        }

        public Criteria andUcRstarttimeLessThan(Date value) {
            addCriterion("uc_rStartTime <", value, "ucRstarttime");
            return (Criteria) this;
        }

        public Criteria andUcRstarttimeLessThanOrEqualTo(Date value) {
            addCriterion("uc_rStartTime <=", value, "ucRstarttime");
            return (Criteria) this;
        }

        public Criteria andUcRstarttimeIn(List<Date> values) {
            addCriterion("uc_rStartTime in", values, "ucRstarttime");
            return (Criteria) this;
        }

        public Criteria andUcRstarttimeNotIn(List<Date> values) {
            addCriterion("uc_rStartTime not in", values, "ucRstarttime");
            return (Criteria) this;
        }

        public Criteria andUcRstarttimeBetween(Date value1, Date value2) {
            addCriterion("uc_rStartTime between", value1, value2, "ucRstarttime");
            return (Criteria) this;
        }

        public Criteria andUcRstarttimeNotBetween(Date value1, Date value2) {
            addCriterion("uc_rStartTime not between", value1, value2, "ucRstarttime");
            return (Criteria) this;
        }

        public Criteria andUcRendtimeIsNull() {
            addCriterion("uc_rEndTime is null");
            return (Criteria) this;
        }

        public Criteria andUcRendtimeIsNotNull() {
            addCriterion("uc_rEndTime is not null");
            return (Criteria) this;
        }

        public Criteria andUcRendtimeEqualTo(Date value) {
            addCriterion("uc_rEndTime =", value, "ucRendtime");
            return (Criteria) this;
        }

        public Criteria andUcRendtimeNotEqualTo(Date value) {
            addCriterion("uc_rEndTime <>", value, "ucRendtime");
            return (Criteria) this;
        }

        public Criteria andUcRendtimeGreaterThan(Date value) {
            addCriterion("uc_rEndTime >", value, "ucRendtime");
            return (Criteria) this;
        }

        public Criteria andUcRendtimeGreaterThanOrEqualTo(Date value) {
            addCriterion("uc_rEndTime >=", value, "ucRendtime");
            return (Criteria) this;
        }

        public Criteria andUcRendtimeLessThan(Date value) {
            addCriterion("uc_rEndTime <", value, "ucRendtime");
            return (Criteria) this;
        }

        public Criteria andUcRendtimeLessThanOrEqualTo(Date value) {
            addCriterion("uc_rEndTime <=", value, "ucRendtime");
            return (Criteria) this;
        }

        public Criteria andUcRendtimeIn(List<Date> values) {
            addCriterion("uc_rEndTime in", values, "ucRendtime");
            return (Criteria) this;
        }

        public Criteria andUcRendtimeNotIn(List<Date> values) {
            addCriterion("uc_rEndTime not in", values, "ucRendtime");
            return (Criteria) this;
        }

        public Criteria andUcRendtimeBetween(Date value1, Date value2) {
            addCriterion("uc_rEndTime between", value1, value2, "ucRendtime");
            return (Criteria) this;
        }

        public Criteria andUcRendtimeNotBetween(Date value1, Date value2) {
            addCriterion("uc_rEndTime not between", value1, value2, "ucRendtime");
            return (Criteria) this;
        }

        public Criteria andUcRstateIsNull() {
            addCriterion("uc_rState is null");
            return (Criteria) this;
        }

        public Criteria andUcRstateIsNotNull() {
            addCriterion("uc_rState is not null");
            return (Criteria) this;
        }

        public Criteria andUcRstateEqualTo(String value) {
            addCriterion("uc_rState =", value, "ucRstate");
            return (Criteria) this;
        }

        public Criteria andUcRstateNotEqualTo(String value) {
            addCriterion("uc_rState <>", value, "ucRstate");
            return (Criteria) this;
        }

        public Criteria andUcRstateGreaterThan(String value) {
            addCriterion("uc_rState >", value, "ucRstate");
            return (Criteria) this;
        }

        public Criteria andUcRstateGreaterThanOrEqualTo(String value) {
            addCriterion("uc_rState >=", value, "ucRstate");
            return (Criteria) this;
        }

        public Criteria andUcRstateLessThan(String value) {
            addCriterion("uc_rState <", value, "ucRstate");
            return (Criteria) this;
        }

        public Criteria andUcRstateLessThanOrEqualTo(String value) {
            addCriterion("uc_rState <=", value, "ucRstate");
            return (Criteria) this;
        }

        public Criteria andUcRstateLike(String value) {
            addCriterion("uc_rState like", value, "ucRstate");
            return (Criteria) this;
        }

        public Criteria andUcRstateNotLike(String value) {
            addCriterion("uc_rState not like", value, "ucRstate");
            return (Criteria) this;
        }

        public Criteria andUcRstateIn(List<String> values) {
            addCriterion("uc_rState in", values, "ucRstate");
            return (Criteria) this;
        }

        public Criteria andUcRstateNotIn(List<String> values) {
            addCriterion("uc_rState not in", values, "ucRstate");
            return (Criteria) this;
        }

        public Criteria andUcRstateBetween(String value1, String value2) {
            addCriterion("uc_rState between", value1, value2, "ucRstate");
            return (Criteria) this;
        }

        public Criteria andUcRstateNotBetween(String value1, String value2) {
            addCriterion("uc_rState not between", value1, value2, "ucRstate");
            return (Criteria) this;
        }

        public Criteria andUcRndescIsNull() {
            addCriterion("uc_rnDesc is null");
            return (Criteria) this;
        }

        public Criteria andUcRndescIsNotNull() {
            addCriterion("uc_rnDesc is not null");
            return (Criteria) this;
        }

        public Criteria andUcRndescEqualTo(String value) {
            addCriterion("uc_rnDesc =", value, "ucRndesc");
            return (Criteria) this;
        }

        public Criteria andUcRndescNotEqualTo(String value) {
            addCriterion("uc_rnDesc <>", value, "ucRndesc");
            return (Criteria) this;
        }

        public Criteria andUcRndescGreaterThan(String value) {
            addCriterion("uc_rnDesc >", value, "ucRndesc");
            return (Criteria) this;
        }

        public Criteria andUcRndescGreaterThanOrEqualTo(String value) {
            addCriterion("uc_rnDesc >=", value, "ucRndesc");
            return (Criteria) this;
        }

        public Criteria andUcRndescLessThan(String value) {
            addCriterion("uc_rnDesc <", value, "ucRndesc");
            return (Criteria) this;
        }

        public Criteria andUcRndescLessThanOrEqualTo(String value) {
            addCriterion("uc_rnDesc <=", value, "ucRndesc");
            return (Criteria) this;
        }

        public Criteria andUcRndescLike(String value) {
            addCriterion("uc_rnDesc like", value, "ucRndesc");
            return (Criteria) this;
        }

        public Criteria andUcRndescNotLike(String value) {
            addCriterion("uc_rnDesc not like", value, "ucRndesc");
            return (Criteria) this;
        }

        public Criteria andUcRndescIn(List<String> values) {
            addCriterion("uc_rnDesc in", values, "ucRndesc");
            return (Criteria) this;
        }

        public Criteria andUcRndescNotIn(List<String> values) {
            addCriterion("uc_rnDesc not in", values, "ucRndesc");
            return (Criteria) this;
        }

        public Criteria andUcRndescBetween(String value1, String value2) {
            addCriterion("uc_rnDesc between", value1, value2, "ucRndesc");
            return (Criteria) this;
        }

        public Criteria andUcRndescNotBetween(String value1, String value2) {
            addCriterion("uc_rnDesc not between", value1, value2, "ucRndesc");
            return (Criteria) this;
        }

        public Criteria andUcRnamountIsNull() {
            addCriterion("uc_rnAmount is null");
            return (Criteria) this;
        }

        public Criteria andUcRnamountIsNotNull() {
            addCriterion("uc_rnAmount is not null");
            return (Criteria) this;
        }

        public Criteria andUcRnamountEqualTo(String value) {
            addCriterion("uc_rnAmount =", value, "ucRnamount");
            return (Criteria) this;
        }

        public Criteria andUcRnamountNotEqualTo(String value) {
            addCriterion("uc_rnAmount <>", value, "ucRnamount");
            return (Criteria) this;
        }

        public Criteria andUcRnamountGreaterThan(String value) {
            addCriterion("uc_rnAmount >", value, "ucRnamount");
            return (Criteria) this;
        }

        public Criteria andUcRnamountGreaterThanOrEqualTo(String value) {
            addCriterion("uc_rnAmount >=", value, "ucRnamount");
            return (Criteria) this;
        }

        public Criteria andUcRnamountLessThan(String value) {
            addCriterion("uc_rnAmount <", value, "ucRnamount");
            return (Criteria) this;
        }

        public Criteria andUcRnamountLessThanOrEqualTo(String value) {
            addCriterion("uc_rnAmount <=", value, "ucRnamount");
            return (Criteria) this;
        }

        public Criteria andUcRnamountLike(String value) {
            addCriterion("uc_rnAmount like", value, "ucRnamount");
            return (Criteria) this;
        }

        public Criteria andUcRnamountNotLike(String value) {
            addCriterion("uc_rnAmount not like", value, "ucRnamount");
            return (Criteria) this;
        }

        public Criteria andUcRnamountIn(List<String> values) {
            addCriterion("uc_rnAmount in", values, "ucRnamount");
            return (Criteria) this;
        }

        public Criteria andUcRnamountNotIn(List<String> values) {
            addCriterion("uc_rnAmount not in", values, "ucRnamount");
            return (Criteria) this;
        }

        public Criteria andUcRnamountBetween(String value1, String value2) {
            addCriterion("uc_rnAmount between", value1, value2, "ucRnamount");
            return (Criteria) this;
        }

        public Criteria andUcRnamountNotBetween(String value1, String value2) {
            addCriterion("uc_rnAmount not between", value1, value2, "ucRnamount");
            return (Criteria) this;
        }
    }

    /**
     */
    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}